#include "../header.h"


//1线程的未分离属性：通常情况下，线程默认属性是非分离的。线程函数执行完毕以后，空间不会立即释放。状态会保留。
//直到主线程调用 pthread_join函数，等待特定的线程返回状态，这个时候才释放线程空间。
//2分离属性：线程函数执行完毕以后，空间立即释放。
//3pthread_detach可以将线程设定成分离属性，线程设定成分离属性以后，线程函数执行完毕以后，空间自动释放。再调用pthread_join会出错。

//线程函数
void* pthread_fun1(void *arg)
{
    printf("1 this is %s test %lu\n",__func__,pthread_self());
    printf("2 this is %s test %lu\n",__func__,pthread_self());
    printf("3 this is %s test %lu\n",__func__,pthread_self());
    pthread_exit((void*)0);
}

int main(int argc, char const *argv[])
{
    pthread_t tid = 0 ;
    pthread_create(&tid,NULL,pthread_fun1,NULL);
    //可以把线程设定成分离属性。
    pthread_detach(tid);
    sleep(1);
    // int res = pthread_join(tid,NULL);
    // if(!res)
    // {
    //     printf("线程是未分离的的!\n");
    //     return 0;
    // }
    // else
    // {
    //     printf("res = %d\n",res);
    //     printf("线程是分离的!\n");
    //     return 0;
    // }
    return 0;
}
